﻿using Library.Common.Model;
using Synthesize.BaseSet.ServiceInterface.Dtos.Authority.Post;
using System.Threading.Tasks;

namespace Synthesize.BaseSet.ServiceInterface.UseCase.Authority
{
    public interface IPostService
    {
        /// <summary>
        /// 创建岗位
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<BaseApiResult<bool>> Create(CreatePostInput input);


        /// <summary>
        /// 禁用/启用岗位
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<BaseApiResult<bool>> ForbidOrEnable(ForbidOrEnableInput input);

        /// <summary>
        /// 更新岗位
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<BaseApiResult<bool>> Update(UpdatePostInput input);

        /// <summary>
        /// 更新岗位-用户信息
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<BaseApiResult<bool>> UpdatePostUser(UpdatePostUserInput input);

        /// <summary>
        /// 删除岗位
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<BaseApiResult<bool>> DeleteById(SingleDeleteInput input);

        /// <summary>
        /// 删除指定的用户-岗位关系
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<BaseApiResult<bool>> DeleteUserPost(DeleteUserPostInput input);

    }
}
